package com.sse.sensor.utils;

import java.util.HashMap;
import java.util.Map;

import com.sse.sensor.TipoSensor;
import com.sse.sensor.impl.SensorAntena;
import com.sse.sensor.impl.SensorHumo;
import com.sse.sensor.impl.SensorIngreso;
import com.sse.sensor.impl.SensorMovimiento;
import com.sse.sensor.impl.SensorPuerta;
import com.sse.sensor.impl.SensorVentana;

/**
 * Clase de utilidad, permite conocer mas informacion legible
 * sobre los eventos para cada tipo de sensor.
 * @author Paul
 *
 */
public class EventoUtil {
	
	public static final String[] tiposSensores = {"HUMO","PUERTA", "VENTANA", "MOVIMIENTO", "ANTENA", "INGRESO"};
	
	public static Map<Long, String> eventosSensorHumo;
	public static Map<Long, String> eventosSensorPuerta;
	public static Map<Long, String> eventosSensorVentana;
	public static Map<Long, String> eventosSensorMovimiento;
	public static Map<Long, String> eventosSensorAntena;
	public static Map<Long, String> eventosSensorIngreso;

	
	static{
		eventosSensorHumo = new HashMap<Long, String>();		
		eventosSensorHumo.put(SensorHumo.SIN_EVENTO, "SIN_EVENTO");
		eventosSensorHumo.put(SensorHumo.HUMO, "HUMO");
		
		eventosSensorPuerta = new HashMap<Long, String>();		
		eventosSensorPuerta.put(SensorPuerta.SIN_EVENTO, "SIN_EVENTO");
		eventosSensorPuerta.put(SensorPuerta.PUERTA_ABIERTA, "PUERTA_ABIERTA");
		eventosSensorPuerta.put(SensorPuerta.PUERTA_CERRADA, "PUERTA_CERRADA");
		
		eventosSensorVentana = new HashMap<Long, String>();		
		eventosSensorVentana.put(SensorVentana.SIN_EVENTO, "SIN_EVENTO");
		eventosSensorVentana.put(SensorVentana.VENTANA_ABIERTA, "VENTANA_ABIERTA");
		eventosSensorVentana.put(SensorVentana.VENTANA_CERRADA, "VENTANA_CERRADA");
		
		eventosSensorMovimiento = new HashMap<Long, String>();		
		eventosSensorMovimiento.put(SensorMovimiento.SIN_EVENTO, "SIN_EVENTO");
		eventosSensorMovimiento.put(SensorMovimiento.MOVIMIENTO_DETECTADO, "MOVIMIENTO_DETECTADO");
		
		eventosSensorAntena = new HashMap<Long, String>();		
		eventosSensorAntena.put(SensorAntena.SIN_EVENTO, "SIN_EVENTO");
		eventosSensorAntena.put(SensorAntena.AREA_PERMITIDA, "AREA_PERMITIDA");
		eventosSensorAntena.put(SensorAntena.SALE_RANGO, "SALE_RANGO");
		
		eventosSensorIngreso = new HashMap<Long, String>();		
		eventosSensorIngreso.put(SensorIngreso.SIN_EVENTO, "SIN_EVENTO");
		eventosSensorIngreso.put(SensorIngreso.INGRESO, "INGRESO");
		eventosSensorIngreso.put(SensorIngreso.SALIDA, "SALIDA");
		
	}
	
	public static String getEventoSensorHumo(Long eventoId){
		return eventosSensorHumo.get(eventoId);
	}
	public static String getEventoSensorPuerta(Long eventoId){
		return eventosSensorPuerta.get(eventoId);
	}
	public static String getEventoSensorVentana(Long eventoId){
		return eventosSensorVentana.get(eventoId);
	}
	public static String getEventoSensorMovimiento(Long eventoId){
		return eventosSensorMovimiento.get(eventoId);
	}
	
	public static String getEventoSensorAntena(Long eventoId){
		return eventosSensorAntena.get(eventoId);
	}

	public static String getEventoSensorIngreso(Long eventoId){
		return eventosSensorIngreso.get(eventoId);
	}
	
	public static String getEvento(Long evento, Long tipoSensor){
		if(tipoSensor == TipoSensor.MOVIMIENTO){
			return eventosSensorMovimiento.get(evento);
		}
		else if(tipoSensor == TipoSensor.PUERTA){
			return eventosSensorPuerta.get(evento);
		}
		else if(tipoSensor == TipoSensor.HUMO){
			return eventosSensorHumo.get(evento);
		}
		else if(tipoSensor == TipoSensor.VENTANA){
			return eventosSensorVentana.get(evento);
		}
		else if(tipoSensor == TipoSensor.ANTENA){
			return eventosSensorAntena.get(evento);
		}
		else if(tipoSensor == TipoSensor.INGRESO){
			return eventosSensorIngreso.get(evento);
		}
		return null;
	}
	
}

